<!DOCTYPE html>
<style>
    .halfsquare { width:15px; height:30px; background:blue; }
</style>
<p>There should be a blue square below.</p>
<div style="position:relative; columns:2; column-gap:0; column-fill:auto; width:400px; height:90px; line-height:20px;">
    <div style="margin-left:auto; margin-bottom:30px;" class="halfsquare"></div>
    <div id="float1" style="float:left; width:60px; height:30px;"></div>
    <div id="float2" style="float:left; width:130px; height:15px;"></div>
    <div id="float3" style="float:left;" class="halfsquare"><br></div>
</div>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
test(() => {
    // #float1 and #float2 fit beside each other, since their total
    // width is 190px, and column width is greater, i.e. 200px.
    //
    // #float3 is 15px wide. It cannot fit beside both #float1 and
    // #float2, because that would exceed the column width. It could
    // fit beside #float2 alone, though. However, at this point we
    // only have 15px of available height remaining in the first
    // column, and #float3 requires 20px (the blank line inside,
    // which is unbreakable), so it needs to be pushed to the next
    // column, and thus end up after both preceding floats.
    var float3 = document.getElementById("float3");
    assert_equals(float3.offsetTop, 0);
    assert_equals(float3.offsetLeft, 200);
}, "Float pushed down by sibling float, and then by pagination, affecting final inline position.");
</script>
